package com.example.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * 自动建表配置属性
 */
@Data
@Component
@ConfigurationProperties(prefix = "auto-table")
public class AutoTableProperties {
    
    /**
     * 是否启用自动建表
     */
    private Boolean enabled = true;
    
    /**
     * 建表模式：create(删除重建), update(更新表结构), none(不操作)
     */
    private String mode = "update";
    
    /**
     * 是否显示建表SQL
     */
    private Boolean showSql = true;
    
    /**
     * 是否启用动态表结构同步（新增/删除字段）
     */
    private Boolean dynamicSync = true;
    
    /**
     * 是否自动删除数据库中多余的字段
     * 警告：开启后会删除实体类中不存在的字段，可能导致数据丢失
     */
    private Boolean autoDropColumn = false;
    
    /**
     * 是否自动修改字段类型
     */
    private Boolean autoModifyColumn = false;
    
    /**
     * 是否自动创建数据库（如果数据库不存在）
     */
    private Boolean autoCreateDatabase = true;
    
    /**
     * 要扫描的实体类包路径列表
     * 例如: com.example.entity, com.example.domain
     */
    private String[] entityPackages = new String[0];
}
